import{
    createSlice
} from "@reduxjs/toolkit";

// 这个是传配置的
const countSlice =createSlice({
    // action中type的命名空间
    name:"counter",
    // 
    initialState:{
        count:0
    },
    reducers:{
        increment(prev,action){
        // reduce中处理函数接收两个参数，分别是当前reducer中上一次的值，本次dispacth的action对象
        // action对象中有一个payload就是用户调用action函数时传递的参数
        // 不需要像之前那样得到新值再覆盖，可以直接修该reducer中的值，redux-toolkit中合成有一个immit的包帮我们处理了
        prev.count +=action.payload
        },
        decrement:(prev,action)=>{
            prev.count -= action.payload
        }
    }
})

// 通过createSilce创建的对象上有一个reducer属性，直接得到就是当前的reducer函数，可以暴露出去给store使用
export default countSlice.reducer 

export const{
    increment,
    decrement
}=countSlice.actions;
